iT邦幫忙

2024 iThome 鐵人賽

DAY 5
0
自我挑戰組

初學C#之路:30天基礎學習與實作紀錄系列 第 10

Day10-物件導向基礎學習Part3

  • 分享至 

  • xImage
  •  

唯讀/唯寫屬性
唯讀屬性表示執行程式時,只能讀取而無法修改其值

public string Title { //唯讀屬性
	get { return name }
} 

唯讀屬性表示執行程式時,只能讀取而無法修改其值

public string Title { //唯讀屬性
	set { name = value; }
}

自動實作屬性
撰寫類別程式,為了讓宣告的屬性更簡潔,程式區段中只保留存取子get和set,不加任何的程式碼,編譯器會自動支援私有(private)欄位。

private string name; //定義欄位
public string Title { //定義屬性
	get { return name; }
	set { name = value }
}
public string Title { get;set; } //採用自動實作屬性

練習題

//student.cs
class student 
{
	public string Title { get;set; }
	public short Ages { get;set; }
	public void ShowMessage () =>
		Console.WriteLine($"Hello! {Title}, 年齡:{Ages}.");
}
//program.cs
static void Main(string[] args)
{
	Student luke = new Student();
	Console.Write("請輸入你的名字:");
	luke.Title = ReadLine();
	Console.Write("請輸入你的年齡:");
	luke.Ages = Int16.Parse(ReadLine()); // 轉為short型別
	//顯示訊息
	luke.ShowMessage();
}

https://ithelp.ithome.com.tw/upload/images/20241002/2012166997m6IocGpF.png
https://ithelp.ithome.com.tw/upload/images/20241002/20121669GlI1Tp6dEG.png

將自動屬性給予初值
通常屬性採自動實作時其初值的設定有兩種方式:

  • 利用建構函式傳入參數值
  • 將自動實作屬性給予初值
//student.cs
class Student
{
    // 自動實作屬性並設初值
    public string Title { get; set; } = "Poe Dameron"; 
    public short Ages { get; set; } = 22;
    public DateTime Enrolled { get; } = DateTime.Now; 
    public void ShowMessage() =>
        Console.WriteLine($"Hello! {Title}, 年齡:{Ages}. -目前時間{Enrolled}"); 
}
//program.cs
static void Main(string[] args)
{
	Student poe = new Student();
	//顯示訊息
	poe.ShowMessage();
}

以上來源:從零開始學visual C# 2017程式設計、W3Schools、詢問chatGPT
內容有誤的話,請留言或發訊息給我


上一篇
Day9-方法和傳遞機制Part2
系列文
初學C#之路:30天基礎學習與實作紀錄10
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言